package com.ruoyi.oa.domain.vo;

import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import com.ruoyi.workflow.domain.ActBusinessStatus;


/**
 * 差旅费视图对象 oa_finance_travel
 *
 * @author wangxq
 * @date 2023-05-18
 */
@Data
@ExcelIgnoreUnannotated
public class OaFinanceTravelVo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
//    @ExcelProperty(value = "主键")
    private String id;

    /**
     * 部门ID
     */
//    @ExcelProperty(value = "部门ID")
    private Long deptId;

    /**
     * 用户ID
     */
//    @ExcelProperty(value = "用户ID")
    private Long userId;

    /**
     * 项目名称
     */
//    @ExcelProperty(value = "项目名称")
    private String projectName;

    /**
     * 报销日期
     */
    @ExcelProperty(value = "报销日期")
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date reimbursementDate;

    /**
     * 编号
     */
    @ExcelProperty(value = "编号")
    private String number;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String name;

    /**
     * 部门
     */
    @ExcelProperty(value = "部门")
    private String dept;

    /**
     * 出差事由
     */
    @ExcelProperty(value = "出差事由")
    private String businessReason;

    /**
     * 费用类型
     */
    @ExcelProperty(value = "费用类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "travel_type")
    private String costType;

    /**
     * 开户行名称
     */
    @ExcelProperty(value = "开户行名称")
    private String nameBank;

    /**
     * 卡号
     */
    @ExcelProperty(value = "卡号")
    private String cardNumber;

    /**
     * 附件张数
     */
    @ExcelProperty(value = "附件张数")
    private String attachmentNumbers;

    /**
     * 申请列表
     */
    @ExcelProperty(value = "申请列表")
    private String applyList;

    /**
     * 报销总额
     */
    @ExcelProperty(value = "报销总额")
    private String reimbursementTotal;

    /**
     * 小写
     */
    @ExcelProperty(value = "小写")
    private BigDecimal smallLetter;

    /**
     * 预支金额
     */
    @ExcelProperty(value = "预支金额")
    private BigDecimal advanceAmount;

    /**
     * 应报销金额
     */
    @ExcelProperty(value = "应报销金额")
    private BigDecimal reimbursableAmount;

    /**
     * 应退回金额
     */
    @ExcelProperty(value = "应退回金额")
    private BigDecimal refundAmount;

    /**
     * 应付金额
     */
    @ExcelProperty(value = "应付金额")
    private BigDecimal payableAmount;

    /**
     * oss集合
     */
//    @ExcelProperty(value = "oss集合")
    private String attachment;


    /**
     * 业务状态实体对象
     */
    private ActBusinessStatus actBusinessStatus;

    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
    @ExcelProperty(value = "提交日期")
    @ColumnWidth(20)
    private Date createTime;

    @ExcelProperty(value = "提交人")
    private String createBy;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;
}
